Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2003
Тип роботи:
Звіт до лабораторної роботи
Предмет:
СП

Частина тексту файла

 Тема: Мета: ТЕОРЕТИЧНІ ВІДОМОСТІ В даній лабораторній роботі, використовуючи графічні функції бібліотеки OpenGL, генерується досить складне зображення, яке є набором простих геометричних фігур, а саме – квадратів. Отже дана фігура складається з шести квадратів, кожен з яких є комбінацією квадратів які обертаються навколо центра і зменшуються таким чином щоб кожен наступний квадрат “входив” у попередній. Поворот квадрата здійснюється за такими правилами – малюється лінія яка зміщена по кожній з координатних осей на N-ну кількість пік селів. Наприклад – нижня лінія : один кінець зсунутий по осі Х на n-ну кількість пік селів, другий – по осі У. Розміри квадрата визначаються спеціальною функцією яка є підібраною для конкретного випадку. Текст програми program Bachinsky3; uses Messages, Windows, OpenGL; const AppName = 'Bachinsky-3'; Var dop:integer; Window : HWnd; Message : TMsg; WindowClass : TWndClass; dc : HDC; hrc : HGLRC; // контекст воспроизведения OpenGL MyPaint : TPaintStruct; centreX,centreY,LongLine,Coner: integer; //--------------my------------------ procedure Paint(CentreX,CentreY,LongLine,Coner:integer); var Delta,HalfLongLine, X1,X2,X3,X4,Y1,Y2,Y3,Y4:integer; begin while Coner>0 do Coner:=Coner-90; Coner:=Coner+90; Delta:=(LongLine*Coner div 90); HalfLongLine:=LongLine div 2; X1:=CentreX-HalfLongLine; Y1:=CentreY-HalfLongLine+Delta; X2:=X1+Delta; Y2:=CentreY+HalfLongLine; X3:=CentreX+HalfLongLine; Y3:=Y2-Delta; X4:=X3-Delta; Y4:=CentreY-HalfLongLine; // glClear (GL_COLOR_BUFFER_BIT); glEnable(GL_LINE_SMOOTH); glColor3f (0.9,0.2,1.0); glbegin(GL_LINES); glVertex2f(x1/100,y1/100); glVertex2f(x2/100,y2/100); glVertex2f(x2/100,y2/100); glVertex2f(x3/100,y3/100); glVertex2f(x3/100,y3/100); glVertex2f(x4/100,y4/100); glVertex2f(x4/100,y4/100); glVertex2f(x1/100,y1/100); glend; end; //---------------------------------- // Процедура заполнения полей структуры PIXELFORMATDESCRIPTOR procedure SetDCPixelFormat (hdc : HDC); var pfd : TPixelFormatDescriptor; // данные формата пикселей nPixelFormat : Integer; Begin With pfd do begin nSize := sizeof (TPixelFormatDescriptor); // размер структуры nVersion := 1; // номер версии dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL; // множество битовых флагов, определяющих устройство и интерфейс iPixelType := PFD_TYPE_RGBA; // режим для изображения цветов cColorBits := 16; // число битовых плоскостей в каждом буфере цвета cRedBits := 0; // число битовых плоскостей красного в каждом буфере RGBA cRedShift := 0; // смещение от начала числа битовых плоскостей красного в каждом буфере RGBA cGreenBits := 0; // число битовых плоскостей зелёного в каждом буфере RGBA cGreenShift := 0; // смещение от начала числа битовых плоскостей зелёного в каждом буфере RGBA cBlueBits := 0; // число битовых плоскостей синего в каждом буфере RGBA cBlueShift := 0; // смещение от начала числа битовых плоскостей синего в каждом буфере RGBA cAlphaBits := 0; // число битовых плоскостей альфа в каждом буфере RGBA cAlphaShift := 0; // смещение от начала числа битовых плоскостей альфа в каждом буфере RGBA cAccumBits := 0; // общее число битовых плоскостей в буфере аккумулятора cAccumRedBits := 0; // число битовых плоскостей красного в буфере аккумулятора cAccumGreenBits := 0; // число битовых плоскостей зелёного в буфере аккумулятора cAccumBlueBits := 0; // число битовых плоскостей синего в буфере аккумулятора cAccumAlphaBits := 0; // число битовых плоскостей альфа в буфере аккумулятора cDepthBits := 32; // размер буфера глубины (ось z) c...
Антиботан аватар за замовчуванням

02.10.2020 20:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини